#ifndef __COMMON_H__
#define __COMMON_H__

/**
 * The structure of an Iterate Project header
 */
struct ITPHeader {
    int nill;
    char info[27];
    char version[5];
    char projectName[32];
    int metaOffset;
    int numMetaItems;
    int fileOffset;
    int numFiles;
};

/**
 * The structure of a date
 */
struct ITPDate {
    int year;
    int month;
    int day;
    int hours;
    int minutes;
    int seconds;
};

/**
 * Structure containing generated metrics.
 */
struct ITPMetrics {
    int numFiles;
    int whitespaceLines;
    int commentLines;
    int sourceLines;
    //int filetypes[];
};

/**
 * Iterate Project meta-structure, used for tracking project metrics over 
 * time.
 */
struct ITPMeta {
    ITPDate date;
    ITPMetrics metrics;
};

struct fileMetric {
	//ITPDate date;
	char *filepath;
	int whitespaceLines;
	int commentLines;
	int sourceLines;
};

extern const int PROGRAM_VERSION;
extern const int FORMAT_VERSION;

#endif

